A network device may process information packets received from a number of other devices. For example, a network switch or router can receive streams of information packets from other devices via a network. Moreover, the network device may process information packets using a shared resource, such as a main information packet pipeline. In this case, information packets received from a number of other devices may be combined into a single stream to be provided to the shared resource.
By way of example, FIG. 1 is a block diagram of a known arbitration system 100 that may be used in a network device to create a combined stream of information packets. In particular, an arbitration unit 110 receives information packets from a number of Media Access Control (MAC) modules 120 (e.g., each MAC module 120 may be associated with a port through which a network device receives information packets). The arbitration unit 110 combines the received information packets into a single stream that is transmitted to a main pipeline (e.g., for further processing by the network device).
A network device is typically designed to support a predetermined level of performance. For example, a network device might be designed to process approximately 70 million information packets each second. Therefore, a network device that executes 210 million processing cycles each second (MHz) must process each information packet within three processing cycles (i.e., 210/70 =3). Similarly, if the network device instead operates at 280 MHz it can spend four processing cycles on each packet. Note that a network device may be pipelined (e.g., different stages in the network device simultaneously operate on different packets), and the processing time per packet described herein may refer to the number of processing cycles that can be used during each stage.
In addition to processing information packets, other functions associated with the network device may need to be performed. For example, a control unit associated with the network device may need to perform a bookkeeping task, such as by setting up tables and/or registers. Similarly, programming, address insertion, and/or learning tasks may need to be performed. To accommodate the performance of these functions, a network device is usually designed to be able to execute processing cycles faster than are required solely for information packet processing. Using the previous example, a network device that can process 70 million packets each second (and processes each packet within three processing cycles) might be designed to operate at 245 MHz. In this case, the network device can use 210 MHz to process information packets and the remaining 35 MHz to perform other functions. That is, processing cycles will intermittently become available (e.g., meaning that no information packet currently needs to processed). These available processing cycles can then be used by, for example, the control unit.
The amount of processing cycles that become available will, on average, correspond to the excess capacity of the network device (e.g., the ability of the network device to execute processing cycles in excess of those needed to process information packets). For example, in the above example, one out of seven processing cycles can be expected, on average, to become available to perform other functions. Although the average amount of available processing cycles can be determined, the actual amount that will become available during a given period of time can vary. For example, the MAC modules 120 might buffer information packets before providing them to the arbitration unit 110. In this case, all processing cycles could be needed to process a burst of information packets in a given period of time, and therefore no processing cycles will be available to perform other functions. As a result, the performance of the network device may be degraded (e.g., bottlenecks may occur and/or other tasks may not be performed during that time).